DynamoDB データをS3 からインポートとS3 にエクスポート試してみた。
概要
S3 からDynamoDBにインポートする
DynamoDB の [Imports from S3] 機能を使用して、S3 から DynamoDB テーブルにデータをインポートできます。これにより、Amazon S3 から新しい DynamoDB テーブルにテラバイト単位のデータを一括インポートできます。CSV、DynamoDB JSON、または Amazon Ion 形式のデータをインポートできます。データは新しいテーブルにインポートされます。既存のテーブルへのインポートはサポートされていません。
S3 にデータのエクスポートする
DynamoDB の [Exports to S3] 機能を使用して、DynamoDB テーブルから S3 にデータをエクスポートできます。データをエクスポートするには、DynamoDB ソーステーブルでポイントインタイムリカバリ (PITR) を有効にする必要があります。DynamoDB JSON または Amazon Ion でデータをエクスポートできます。
この記事では、DynamoDB データをS3 からインポートとS3 にエクスポート試してみました。
やってみた
S3 から DynamoDB JSON 形式でデータをインポートする
- JSON 形式でデータ ファイル [test-data.json] を作成し、そのファイルを S3 バケットにアップロードしておきます。
{"Item": { "Id":{"S":"101"}, "object":{"S":"image1.jpg"}, "size":{"S":"50KB"}, "Created":{"S":"Tuesday, 30 May 2023 at 1:15 PM"} } } {"Item": { "Id":{"S":"102"}, "object":{"S":"image2.jpg"}, "size":{"S":"150KB"}, "Created":{"S":"Tuesday, 30 May 2023 at 2:15 PM"} } } ........
- DynamoDB コンソールのナビゲーションペインで、[Imports from S3]を選択し、[Import from S3]をクリックしておきます。
- S3 のソース URL を入力し、[DynamoDB JSON] を [Import file format] として選択しておきます。
- テーブル名、パーティション キー、およびソート キー (必要な場合) を入力し、他の設定をデフォルトのままにしてデータをインポートしておきます。
- インポートの [Status] を確認できます。インポートが失敗した場合は、CloudWatch ログでエラーの詳細を確認できます。
- インポートが完了すると、DynamoDB テーブル内のデータを確認できます。
S3 から CSV 形式でデータをインポートする
- CSV 形式でデータ ファイル [data.json] を作成し、そのファイルを S3 バケットにアップロードしておきます。この CSV データにはヘッダー値がありません。
101|image1.jpg|Tuesday, 30 May 2023 at 1:15 PM 102|image2.jpg|Tuesday, 30 May 2023 at 2:15 PM ......
- CSV 形式でデータをインポートするには、[CSV] を [Import file format] として選択しておきます。
- データ ファイルにはヘッダーがないため、ヘッダーを定義し、[Pipe ("|")] を [CSV delimiter character] として選択し、他の設定をデフォルトのままにしてデータをインポートしておきます。
- インポートの [Status] を確認できます。インポートが失敗した場合は、CloudWatch ログでエラーの詳細を確認できます。
DynamoDB テーブルから S3 にデータをエクスポートする
- データをエクスポートするには、DynamoDB ソーステーブルでポイントインタイムリカバリ (PITR) を有効しておきます。
- DynamoDB コンソールのナビゲーションペインで、[Exports to S3] を選択し、[Export to S3]をクリックしておきます。
- ソーステーブルと宛先S3バケットを選択し、[DynamoDB JSON] を [Exported file format] として選択して、エクスポートしておきます。
- エクスポートの [Status] を確認します。
- エクスポートが完了すると、S3 バケットにエクスポートされたデータが表示されます。
まとめ
DynamoDBの [Imports from S3] と [Exports to S3] の機能により、コードを書くことなく簡単にデータのインポートやエクスポートができるようになりました。ただし、S3 バケットから既存の DynamoDB テーブルにデータをインポートすることはできません。
Reference :